void main() {
  // 字面量
  var map1 = {"name": '张三', "age": 23};
  print(map1);

  // 构造函数
  var map2 = Map();
  map2['sex'] = '男';
  map2['favorite'] = '吹牛逼';
  print(map2);

  // key只能出现一次，value可以出现多次

  // 约束

  var map3 = Map<String, bool>();
  map3['isLike'] = true;
  map3['isFan'] = false;
  map3['islove'] = false;
  print(map3);

  // 删除
  map3.remove('isFan');
  print(map3);

  
  map3.removeWhere((key, value) {
    return key == "islove";
  });

  print(map3);

  // 检测键

  print(map3.containsKey('isChosen'));
  print(map3.containsKey('isLike'));

  // 检测值

  print(map3.containsValue('false'));

  var map4 = {};
  print(map4.isEmpty);
  print(map4.isNotEmpty);

  var map5 = {
    "name1": '张三',
    "name2": '李四',
    "name3": '王五',
  };

  // for in 循环
  for (var item in map5.values) {
    print('数据为：$item');
  }

  // foreach 循环

  map5.forEach((key, value) {
    print("$key,$value");
  });
}
